package com.lcz.authority.admin.service;

import com.lcz.authority.common.domain.model.LoginUser;
import com.lcz.authority.common.domain.vo.SysUserOnline;

/**
 * @author lcz
 * @desc 在线用户 服务层
 * @mail lcz_0130@163.com
 * @date 2024/05/16
 */
public interface SysUserOnlineService {
    /**
     * 通过登录地址查询信息
     *
     * @param loginLocation 登录地点
     * @param user          用户信息
     * @return 在线用户信息
     */
    SysUserOnline selectOnlineByIpaddr(String loginLocation, LoginUser user);

    /**
     * 通过用户名称查询信息
     *
     * @param userName 用户名称
     * @param user     用户信息
     * @return 在线用户信息
     */
    SysUserOnline selectOnlineByUserName(String userName, LoginUser user);

    /**
     * 通过登录地址/用户名称查询信息
     *
     * @param loginLocation 登录地点
     * @param userName      用户名称
     * @param user          用户信息
     * @return 在线用户信息
     */
    SysUserOnline selectOnlineByInfo(String loginLocation, String userName, LoginUser user);

    /**
     * 设置在线用户信息
     *
     * @param user 用户信息
     * @return 在线用户
     */
    SysUserOnline loginUserToUserOnline(LoginUser user);
}
